Reverse Engineering State and Strategy Design Patterns using Static Code Analysis

نویسندگان

  • Khaled Abdelsalam Mohamed
  • Amr Kamel
چکیده

This paper presents an approach to detect behavioral design patterns from source code using static analysis techniques. It depends on the concept of Code Property Graph and enriching graph with relationships and properties specific to Design Patterns, to simplify the process of Design Pattern detection. This approach used NoSQL graph database (Neo4j) and uses graph traversal language (Gremlin) for doing graph matching. Our approach, converts the tasks of design pattern detection to a graph matching task by representing Design Patterns in form of graph queries and running it on graph database. Keywords—Reverse engineering; source code analysis; design patterns; static analysis; graph matching; Gremlin; Joern; Neo4j

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reverse Engineering of Design Patterns for High Performance Computing

Reverse engineering tools are typically used for program understanding. Popular code analysis and comprehension tools like CSCOPE [6] and RedHat Source-Navigator [1] can recover program structure and relationships between program components. However, without proper documentation of legacy code, it would still take users a lot of work to understand the intent of the code. The need for a good rev...

متن کامل

Detection of J2EE Patterns based on Customizable Features

Design patterns support extraction of design information for better program understanding, reusability and reengineering. With the advent of contemporary applications, the extraction of design information has become quite complex and challenging. These applications are multilingual in nature i.e. their design information is spread across various language components that are interlinked with eac...

متن کامل

Analysis of disassembled executable codes by abstract interpretation

The aim of this paper is to dene the abstract domain, abstract operator, abstract semantic, the environments and states of disassembled executable codes as well as a way to analysis the disassembled executable codes. Nowadays, static analysis on disassembled code going to grow. Reverse engineering and malware analysis use this technique. Thus, we tried to perform pluralization the requirements ...

متن کامل

Reverse Engineering of Network Software Binary Codes for Identification of Syntax and Semantics of Protocol Messages

Reverse engineering of network applications especially from the security point of view is of high importance and interest. Many network applications use proprietary protocols which specifications are not publicly available. Reverse engineering of such applications could provide us with vital information to understand their embedded unknown protocols. This could facilitate many tasks including d...

متن کامل

A Framework for Reverse Engineering Large C++ Code Bases

When assessing the quality and maintainability of large C++ code bases, tools are needed for extracting several facts from the source code, such as: architecture, structure, code smells, and quality metrics. Moreover, these facts should be presented in such ways so that one can correlate them and find outliers and anomalies. We present SolidFX, an integrated reverse-engineering environment (IRE...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2018